import os
import sys

from loguru import logger

from utils.paths import LogPath
from utils.helper import get_current_time

# 移除默认的日志
logger.remove()

# 日志文件路径 - 时间
log_path = os.path.join(LogPath, get_current_time(f="%Y%m%d%H%M%S") + ".log")

# 日志配置
logger.add(
    # sink=log_path,
    sink=sys.stdout,
    level="DEBUG",  # 日志等级
    format="{time:YYYY-MM-DD HH:mm:ss.SSS}\t|"
           "<level>{level}</level>\t|"
           "{file}:{line}\t|"
           "{extra[thread_id]}\t|"
           "<level>{message}</level>",
    colorize=True,  # 彩色日志
    enqueue=True,  # 弃用安全队列
    diagnose=True,  # 变量值 - 显示
    # rotation="100 MB",  # 日志大小 - 100MB
    # retention="30 days",  # 日志保留时间 - 30天
    # compression="zip",  # 日志压缩格式
    # encoding = "utf8",  # 日志编码
    catch=True,  # 捕获异常 - 运行时异常不会阻塞正常程序运行
)

# 实例化日志对象
Logger = logger.bind(thread_id="default")


# 线程日志对象
def thread_logger(thread_id="default"):
    return logger.bind(thread_id=thread_id)
